import request from '@/utils/request'

/**
 * 创建订单
 * @param data 订单数据（收货信息、备注）
 */
export function createOrder(data) {
  return request({
    url: '/orders',
    method: 'post',
    data
  })
}

/**
 * 支付订单
 * @param orderId 订单ID
 * @param paymentPassword 支付密码
 */
export function payOrder(orderId, paymentPassword) {
  return request({
    url: `/orders/${orderId}/pay`,
    method: 'post',
    params: {
      paymentPassword
    }
  })
}

/**
 * 查询订单列表（分页）
 * @param params 查询参数
 */
export function getOrderPage(params) {
  return request({
    url: '/orders/page',
    method: 'get',
    params
  })
}

/**
 * 查询订单列表（不分页）
 * @param params 查询参数
 */
export function getOrderList(params = {}) {
  return request({
    url: '/orders',
    method: 'get',
    params
  })
}

/**
 * 查询订单详情
 * @param orderId 订单ID
 */
export function getOrderDetail(orderId) {
  return request({
    url: `/orders/${orderId}`,
    method: 'get'
  })
}

/**
 * 取消订单
 * @param orderId 订单ID
 */
export function cancelOrder(orderId) {
  return request({
    url: `/orders/${orderId}/cancel`,
    method: 'put'
  })
}

/**
 * 获取订单物流信息
 * @param orderId 订单ID
 */
export function getOrderLogistics(orderId) {
  return request({
    url: `/orders/${orderId}/logistics`,
    method: 'get'
  })
}

/**
 * 管理员查询所有订单列表（分页，支持条件查询）
 * @param params 查询参数
 */
export function getAdminOrderPage(params) {
  return request({
    url: '/orders/admin/page',
    method: 'get',
    params
  })
}

/**
 * 管理员查询订单详情
 * @param orderId 订单ID
 */
export function getAdminOrderDetail(orderId) {
  return request({
    url: `/orders/admin/${orderId}`,
    method: 'get'
  })
}

/**
 * 管理员更新订单状态
 * @param orderId 订单ID
 * @param orderStatus 订单状态
 */
export function updateOrderStatus(orderId, orderStatus) {
  return request({
    url: `/orders/admin/${orderId}/status`,
    method: 'put',
    params: { orderStatus }
  })
}